<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
  <link rel="stylesheet" media="screen" type="text/css" href="./design.css" />
  <link rel="stylesheet" media="print" type="text/css" href="./print.css" />

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div class="dokuwiki export">

<p>
<em>Translations of this page are also available in the following languages:</em> <a href="geda-todos.ru.html" class="wikilink1" title="geda-todos.ru.html">Русский</a>.
</p>

<h1 class="sectionedit1"><a name="todos" id="todos">Todos</a></h1>
<div class="level1">

<p>
These lists are meant to provide the developers a reminder of undone projects. It is also a wish list capturing user’s desires for new features. New developers can also look here for projects which they might be interested in working on.
</p>

<p>
See <a href="geda-tasks.html" class="wikilink1" title="geda-tasks.html">tasks</a> for non-programmer tasks.
</p>

<p>
The <a href="pcb-roadmap.html" class="wikilink1" title="pcb-roadmap.html"> PCB Roadmap</a> is on a separate page.
</p>

</div>
<!-- EDIT1 SECTION "Todos" [108-467] -->
<h2 class="sectionedit2"><a name="tasks_for_programmers" id="tasks_for_programmers">Tasks for programmers</a></h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> <strong>Netlist Hacker</strong><br/>
Somebody who is familiar with the generation/management of netlists is needed to help work on and improve gnetlist. Whether the existing gnetlist is used or if a total rewrite is needed is always an open option. Must be extremely familiar with UNIX/C/C++ programming.</div>
</li>
<li class="level1"><div class="li"> <strong>Symbol Library Hacker</strong><br/>
Somebody is needed to help get the symbol library up to the current symbol <acronym title="specification">spec</acronym>. This individual would also help in the integration of new symbols and making sure that they meet the current symbol <acronym title="specification">spec</acronym>. The task of getting the symbol library up to <acronym title="specification">spec</acronym> is a combination of manual effort and automated updating (this sort of automated updating lends itself very well to a person with shell/perl scripting familiarity).</div>
</li>
<li class="level1"><div class="li"> <strong>Windows Port Hacker/Manager</strong><br/>
Somebody with expertise building and testing gEDA on UNIX systems and familiarity with the <acronym title="Microsoft">MS</acronym> Windows 95/98/NT platform is needed to manage the gEDA Windows port. Testing, bug fixing, packaging, and releasing of gEDA on the Windows platform would be the primary responsibility of this person. This task requires a person who knows C, GTK+, UNIX, and <acronym title="Microsoft">MS</acronym> Windows programming. The Windows port will NOT move forward if this task is not filled.</div>
</li>
<li class="level1"><div class="li"> <strong>MacOS port manager</strong><br/>
Have the issues mentioned in <a href="http://www.evilmadscientist.com/article.php/pcbtools" class="urlextern" title="http://www.evilmadscientist.com/article.php/pcbtools"  rel="nofollow"> &quot;Laying out printed circuit boards with open-source tools&quot;</a> been fixed already?</div>
</li>
<li class="level1"><div class="li"> <strong>Release Hacker</strong><br/>
Somebody who wants to create and manage releases is needed. Releases occur when the code is ready to be released, so there&#039;s no marketing pressure. This task requires gEDA building/testing familiarity as well perhaps some minor code hacking.</div>
</li>
</ul>

</div>
<!-- EDIT2 SECTION "Tasks for programmers" [468-2188] -->
<h2 class="sectionedit3"><a name="release_roadmap" id="release_roadmap">Release roadmap</a></h2>
<div class="level2">

<p>
This section should contain a list of <strong>only</strong> those issues that are considered as being important enough to block release until they are resolved. If a feature or bug gets bumped or has its importance reduced, please remove it from the list or move it to the appropriate later release.
</p>

</div>
<!-- EDIT3 SECTION "Release roadmap" [2189-2505] -->
<h3 class="sectionedit4"><a name="wishlist_for_next_releases" id="wishlist_for_next_releases">Wishlist for next releases</a></h3>
<div class="level3">
<div class="table sectionedit5"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Description    </th><th class="col1 centeralign">  <a href="https://bugs.launchpad.net/geda/" class="urlextern" title="https://bugs.launchpad.net/geda/"  rel="nofollow">Launchpad bug</a>   </th><th class="col2 centeralign">  Developer(s)        </th><th class="col3 centeralign">  Status      </th>
	</tr>
	<tr class="row1">
		<td class="col0 centeralign">  <strong>Common release tasks</strong>                                              </td><td class="col1 leftalign">         </td><td class="col2 leftalign">           </td><td class="col3"> </td>
	</tr>
	<tr class="row2">
		<td class="col0"> Screenshots of release version for a publicity revamp of gEDA website. </td><td class="col1 centeralign">   n/a   </td><td class="col2 centeralign">  Peter C  </td><td class="col3"> </td>
	</tr>
	<tr class="row3">
		<td class="col0 leftalign"> Merge translations from <a href="https://translations.launchpad.net/geda" class="urlextern" title="https://translations.launchpad.net/geda"  rel="nofollow">Launchpad upstream</a>  </td><td class="col1 centeralign">  n/a  </td><td class="col2 centeralign">  Peter C  </td><td class="col3"> </td>
	</tr>
	<tr class="row4">
		<td class="col0 leftalign"> Check copyright headers are up-to-date    </td><td class="col1 centeralign">  <a href="https://bugs.launchpad.net/geda/+bug/1086316" class="urlextern" title="https://bugs.launchpad.net/geda/+bug/1086316"  rel="nofollow"> 1086316</a>     </td><td class="col2"> </td><td class="col3"> </td>
	</tr>
	<tr class="row5">
		<td class="col0 centeralign">  <strong>Common tasks</strong>                                                      </td><td class="col1 leftalign">         </td><td class="col2 leftalign">           </td><td class="col3"> </td>
	</tr>
	<tr class="row6">
		<td class="col0"> Where possible, ensure gEDA compiles with deprecated GTK / GLib APIs disabled </td><td class="col1 leftalign">    </td><td class="col2 leftalign">          </td><td class="col3 leftalign">              </td>
	</tr>
	<tr class="row7">
		<td class="col0 centeralign">  <strong>gschem</strong>                                                            </td><td class="col1 leftalign">         </td><td class="col2 leftalign">           </td><td class="col3"> </td>
	</tr>
	<tr class="row8">
		<td class="col0"> Cure all: “warning : ignoring return value of ‘…’, declared with attribute warn_unused_result” compiling with recent GCC versions </td><td class="col1"> </td><td class="col2"> </td><td class="col3"> </td>
	</tr>
	<tr class="row9">
		<td class="col0 leftalign"> Avoid direct use of /tmp/ for undo schematics  </td><td class="col1 leftalign">                       </td><td class="col2 leftalign">                      </td><td class="col3 leftalign">              </td>
	</tr>
	<tr class="row10">
		<td class="col0"> Config <acronym title="Graphical User Interface">GUI</acronym> for gschem (and gattrib?) </td><td class="col1 leftalign">                                 </td><td class="col2 centeralign">  Peter B             </td><td class="col3 leftalign">              </td>
	</tr>
	<tr class="row11">
		<td class="col0"> More non-modal dialog boxes in gschem </td><td class="col1 leftalign">                                </td><td class="col2 centeralign">  Edward H            </td><td class="col3 leftalign">              </td>
	</tr>
	<tr class="row12">
		<td class="col0"> Refactor gschem&#039;s action state machine and event dispatching code </td><td class="col1 leftalign">    </td><td class="col2 centeralign">  Edward H            </td><td class="col3 leftalign">              </td>
	</tr>
	<tr class="row13">
		<td class="col0 leftalign"> Edit embedded symbols                                             </td><td class="col1 leftalign">    </td><td class="col2 leftalign">                      </td><td class="col3 leftalign">              </td>
	</tr>
	<tr class="row14">
		<td class="col0"> Per project symbol storage to make the schematics independent from the symbol library </td><td class="col1 leftalign">    </td><td class="col2 leftalign">              </td><td class="col3 leftalign">  </td>
	</tr>
	<tr class="row15">
		<td class="col0"> <a href="geda-wip-clipboard.html" class="wikilink1" title="geda-wip-clipboard.html">Clipboard support</a> for copy / paste with text representations of gEDA schematic data </td><td class="col1 leftalign">   </td><td class="col2 leftalign">             </td><td class="col3 leftalign">      </td>
	</tr>
	<tr class="row16">
		<td class="col0"> <a href="geda-wip-clipboard.html" class="wikilink1" title="geda-wip-clipboard.html">Clipboard support</a> for copy / paste with graphic representation of gEDA schematic data </td><td class="col1"> </td><td class="col2 leftalign">             </td><td class="col3 leftalign">      </td>
	</tr>
	<tr class="row17">
		<td class="col0 leftalign"> Refactor rendering code to allow its use outside of gschem        </td><td class="col1 leftalign">    </td><td class="col2 centeralign">  Peter C            </td><td class="col3 leftalign">               </td>
	</tr>
	<tr class="row18">
		<td class="col0 leftalign"> Refactor preview widget to make it available outside gschem       </td><td class="col1 leftalign">    </td><td class="col2 centeralign">  Peter C            </td><td class="col3 leftalign">               </td>
	</tr>
	<tr class="row19">
		<td class="col0"> gschem: interface for  editing paths and inserting / deleting nodes </td><td class="col1 centeralign">  n/a  </td><td class="col2 leftalign">  </td><td class="col3"> </td>
	</tr>
	<tr class="row20">
		<td class="col0 centeralign">  <strong>libgeda</strong>                                                           </td><td class="col1 leftalign">         </td><td class="col2 leftalign">           </td><td class="col3"> </td>
	</tr>
	<tr class="row21">
		<td class="col0"> UTF-8 / system / filesystem encoding bugs </td><td class="col1 centeralign">  <a href="https://bugs.launchpad.net/geda/+bug/sf-1868072" class="urlextern" title="https://bugs.launchpad.net/geda/+bug/sf-1868072"  rel="nofollow"> 1868072</a>  </td><td class="col2"> </td><td class="col3"> </td>
	</tr>
	<tr class="row22">
		<td class="col0 leftalign"> TinyScheme instead of Guile         </td><td class="col1 leftalign">                                  </td><td class="col2 centeralign">  Peter B             </td><td class="col3 leftalign">              </td>
	</tr>
	<tr class="row23">
		<td class="col0"> New config mechanism to support non-turing complete config </td><td class="col1 leftalign">           </td><td class="col2 centeralign">  Peter B             </td><td class="col3 leftalign"> Started!     </td>
	</tr>
	<tr class="row24">
		<td class="col0 centeralign">  <strong>gnetlist</strong>                                                          </td><td class="col1 leftalign">         </td><td class="col2 leftalign">           </td><td class="col3"> </td>
	</tr>
	<tr class="row25">
		<td class="col0 leftalign"> Per-page netlisting in libgeda      </td><td class="col1 leftalign">                                  </td><td class="col2 centeralign">  Peter C             </td><td class="col3 leftalign">              </td>
	</tr>
	<tr class="row26">
		<td class="col0 leftalign"> Refactor / improve gnetlist         </td><td class="col1 leftalign">                                  </td><td class="col2 centeralign">  Peter C             </td><td class="col3 leftalign">              </td>
	</tr>
	<tr class="row27">
		<td class="col0 leftalign"> gnetlist support for buses          </td><td class="col1 leftalign">                                  </td><td class="col2 centeralign">  Peter C             </td><td class="col3 leftalign"> Started!     </td>
	</tr>
	<tr class="row28">
		<td class="col0 centeralign">  <strong>symbols</strong>                                                           </td><td class="col1 leftalign">         </td><td class="col2 leftalign">           </td><td class="col3"> </td>
	</tr>
	<tr class="row29">
		<td class="col0"> Prettify symbols (e.g. gates) using paths </td><td class="col1 centeralign">  n/a  </td><td class="col2 leftalign">  </td><td class="col3 leftalign">  </td>
	</tr>
</table></div>
<!-- EDIT5 TABLE [2544-5834] -->
</div>
<!-- EDIT4 SECTION "Wishlist for next releases" [2506-5835] -->
<h2 class="sectionedit6"><a name="longer_term_upgrades_desired_for_specific_tools" id="longer_term_upgrades_desired_for_specific_tools">Longer term upgrades desired for specific tools</a></h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> <strong>Libgeda</strong>:</div>
<ul>
<li class="level2"><div class="li"> Enable handling of .sch files with symbols having some (but not all) pins promoted onto the .sch file. This will enable pin-swapping via backannotation from PCB.  (Architectural change)</div>
</li>
<li class="level2"><div class="li"> Merge per-page netlisting from gnetlist (or re-write if necessary).</div>
</li>
</ul>
</li>
<li class="level1"><div class="li"> <strong>Gschem</strong>:</div>
<ul>
<li class="level2"><div class="li"> Create a button in gschem which will invoke gsch2pcb to create a netlist file ready for PCB to read in.</div>
</li>
<li class="level2"><div class="li"> Enable hierarchical bus support.  (Architectural change)</div>
</li>
<li class="level2"><div class="li"> Make gschemrc variables settable from within gschem using a “settings” pull-down menu item (new).  The idea is to update the contents of the gschemrc or gafrc files using pull-down menus, and write the changes out to the correct RC files.</div>
</li>
<li class="level2"><div class="li"> Improve symbol library to handle very large symbol collections better.</div>
</li>
<li class="level2"><div class="li"> Now the SELECTION is a GedaList and we can get “changed” signals, make more dialogs non-modal:</div>
<ul>
<li class="level3"><div class="li"> Single attribute editor</div>
</li>
<li class="level3"><div class="li"> Text properties</div>
</li>
<li class="level3"><div class="li"> Line width and type</div>
</li>
<li class="level3"><div class="li"> Fill type</div>
</li>
<li class="level3"><div class="li"> Edit slot</div>
</li>
<li class="level3"><div class="li"> Edit color</div>
</li>
<li class="level3"><div class="li"> Text size (Sets size for new text, so doesn&#039;t rely on the selection anyway)</div>
</li>
</ul>
</li>
<li class="level2"><div class="li"> Support for embedding LaTeX maths to be rendered in text.</div>
<ul>
<li class="level3"><div class="li"> This could be output only, or preview bitmaps could be generated and cached by calling LaTeX, dvips and ps2epsi.</div>
</li>
<li class="level3"><div class="li"> Would we add a new type of object for this, or allow attaching a “latex=1” attribute to the text object its self?</div>
</li>
</ul>
</li>
</ul>
</li>
<li class="level1"><div class="li"> <strong>Gattrib</strong>:</div>
<ul>
<li class="level2"><div class="li"> Get printing working.</div>
</li>
<li class="level2"><div class="li"> Enable attachment of attributes to nets.  (Architectural)</div>
</li>
</ul>
</li>
<li class="level1"><div class="li"> <strong>Garchive</strong>:</div>
<ul>
<li class="level2"><div class="li"> Incorporate guile so that it reads RC files using the same mechanism as the rest of gEDA/gaf.</div>
</li>
</ul>
</li>
<li class="level1"><div class="li"> <strong>Refdes_renum</strong>:</div>
<ul>
<li class="level2"><div class="li"> Doesn’t currently work properly with slotted parts (it gives new refdes numbers to slotted parts). Fix it so it recognizes slotted parts and assigns refdes appropriately.</div>
</li>
</ul>
</li>
<li class="level1"><div class="li"> <strong>PCB</strong></div>
<ul>
<li class="level2"><div class="li"> Put various commands which are only accessible via a :command(foo) into the top menu.  Newbies want to see what actions are in the menus since that way they know what PCB can do.</div>
</li>
<li class="level2"><div class="li"> Provide a toolbar of buttons for common actions.</div>
</li>
<li class="level2"><div class="li"> Make the difference between editing footprints and PCBs much more obvious.  If you&#039;re in footprint editing mode, then perhaps make the background color change.  (Architectural)</div>
</li>
<li class="level2"><div class="li"> Create a “file → save” dialog window.  In the dialog window, provide a pull-down giving the option to save as a PCB (default) or as a footprint.</div>
</li>
</ul>
</li>
</ul>

</div>
<!-- EDIT6 SECTION "Longer term upgrades desired for specific tools" [5836-8340] -->
<h2 class="sectionedit7"><a name="ideas_for_new_tools_or_geda_suite-wide_enhancements" id="ideas_for_new_tools_or_geda_suite-wide_enhancements">Ideas for new tools or gEDA Suite-wide enhancements</a></h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> Develop scheme for backward annotation of changes from PCB to gschem. Requires modifications to libgeda to support, e.g. pin promotion from .sym file to .sch file (enabling pin swapping).  (Architectural)</div>
</li>
<li class="level1"><div class="li"> Create a Gerber → .pcb conversion tool. Result is metal layer or footprint editable by PCB. This might be a <acronym title="Practical Extraction and Report Language">Perl</acronym> script.</div>
</li>
<li class="level1"><div class="li"> Implement lockfiles between gattrib and gschem.</div>
</li>
</ul>

</div>
<!-- EDIT7 SECTION "Ideas for new tools or gEDA Suite-wide enhancements" [8341-8793] -->
<h2 class="sectionedit8"><a name="code_cleanup_and_refactoring" id="code_cleanup_and_refactoring">Code cleanup and refactoring</a></h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> Remove use of non GList linked lists. This is very invasive work, but allows much code cleanup where mixtures of the old and GList methods were available.</div>
</li>
<li class="level1"><div class="li"> Remove unused variables and functions from various structures. Unused may also include “used”, but ineffective.</div>
</li>
</ul>
<ul>
<li class="level1"><div class="li"> Remove back-exports to libgeda of global function pointers from gschem and other libgeda “clients”. These aren&#039;t portable.</div>
</li>
<li class="level1"><div class="li"> Clean up / produce generic <acronym title="Application Programming Interface">API</acronym> interfaces to act on an object of any type, or lists of objects.</div>
</li>
<li class="level1"><div class="li"> Convert functions used within one ”.c” file, and not useful for public <acronym title="Application Programming Interface">API</acronym> into static functions, removing from prototype.h.</div>
</li>
</ul>

</div>
<!-- EDIT8 SECTION "Code cleanup and refactoring" [8794-] --></div>
</body>
</html>
